package com.aatattoo.light_food_service.mapper;

import com.aatattoo.light_food_service.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface FoodMapper {

    //根据食物类型查找食物
    List<Food> selectFoodByType(int type);
    //查询食物详情
    Food selectFooDetails(int id);
    //查询跟食物相关的食谱
    List<Recipes> selectCookFoodByFoodId(int id);
    //查询食物的好处坏处
    List<GoodUse> selectGoodUseByFoodId(int id);
    //根据id查询食谱
    Recipes selectRecipesById(int id);
    //根据食谱id查询用量
    List<Meterials> selectMeterials(int id);
    //收藏食物食谱
    int insertCollect(Collect collect);

    /**
     * 统计收藏的动态
     * @param collect
     * @return
     */
    int countCollect(Collect collect);

    /**
     * 检查用户是否收藏
     * @param collect
     * @return
     */
    int checkCollect(Collect collect);
    //取消收藏
    int deleteCollect(Collect collect);
    //查询上是否收藏
    int inCollect(Collect collect);
    //收藏的数量
    int collectCount(Collect collect);
    //查找营养素的信息
    List<Trophic> getTrophic();
    //查找不建议搭配表
    List<Common> getCommon();
    //查找收藏的id
    List<Collect> getCollect(Collect collect);
    //查找食谱收藏列表
    Recipes getRecipes(int id);
    //动态表收藏列表
    Dynamic getDynamic(int id);
    //查找第一张图片
    DynamicImg getFirstImg(DynamicImg dynamicImg);
    //添加浏览记录
    int addRecording(Recording recording);
    //查询浏览记录是否存在
    int inRecording(Recording recording);
    //更新浏览记录
    int upRecording(Recording recording);
    //查询浏览记录的列表
    Food selectRecordingFood(int id);
    //查询浏览记录食谱
    Recipes selectRecordingRecipes(int id);
    //查询浏览的内容id
    List<Recording> selectId(Recording recording);
    //搜索食物
    List<Food> searchFood(String name);
    //食谱
    List<Recipes> searchRecipes(String name);

    /**
     *全部食谱
     * @return
     */
    List<Recipes> allRecipes();

    /**
     * 推荐食物，查询全部食物根据里面的东西进行排序然后输出
     * @return
     */
    List<Food> allFood();

    /**
     * 推荐食物  这里是把东西写死了进行的查询
     * @param idList
     * @return
     */
    List<Recipes> newsRecipes(ArrayList<Integer> idList);

     





}
